from flask import current_app, g, session
from info.models import User
import functools


def num(id):
    """
    自定义模板中的过滤器，用于控制span标签的类属性，以此控制css
    """
    if id == 1:
        return 'first'
    elif id == 2:
        return 'second'
    elif id == 3:
        return 'third'
    else:
        return ''


# 自定义装饰器，封装用户的登录信息
def login_status(f):
    @functools.wraps(f)
    def wrapper(*args, **kwargs):
        # 1.尝试用redis中获取用户id
        user_id = session.get('user_id', 'None')
        # 2.判断获取结果存在，并从mysql中查询用户信息
        user = None
        if user_id:
            try:
                user = User.query.get(user_id)
            except Exception as e:
                current_app.logger.error(e)
        # 使用g对象来临时保存数据
        g.user = user
        return f(*args, **kwargs)
    return wrapper



